//
// Created by Alex on 2022/3/27.
//

#ifndef WORDLIST_CORE_H
#define WORDLIST_CORE_H

#ifdef _WIN32

#ifdef F_PIC
#define LIB_FUNC __declspec(dllexport)
#else  // NO F_PIC
#define LIB_FUNC __declspec(dllimport)
#endif // F_PIC

#elif   // NO _WIN32
#error "This program can only be compiled on Win32 platforms."
#define LIB_FUNC
#endif  // _WIN32

#include "Solution.h"

#ifdef __cplusplus
extern "C" {
#endif

    LIB_FUNC int gen_chains_all(char* words[], int len, char* result[]) noexcept(false);
    LIB_FUNC int gen_chain_word(char* words[], int len, char* result[], char head, char tail, bool allow_circ) noexcept(false);
    LIB_FUNC int gen_chain_word_unique(char* words[], int len, char* result[]) noexcept(false);
    LIB_FUNC int gen_chain_char(char* words[], int len, char* result[], char head, char tail, bool enable_loop) noexcept(false);

#ifdef __cplusplus
}
#endif


#endif //WORDLIST_CORE_H
